home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
NOVA - For the NeXT Workstation
/
NOVA - For the NeXT Workstation.iso
/
SourceCode
/
AdobeExamples
/
NX_ImportAdv
/
DrawingView.h
< prev
next >
Wrap
Text File
|
1992-12-19
|
6KB
|
193 lines
/*
* (a) (C) 1990 by Adobe Systems Incorporated. All rights reserved.
*
* (b) If this Sample Code is distributed as part of the Display PostScript
* System Software Development Kit from Adobe Systems Incorporated,
* then this copy is designated as Development Software and its use is
* subject to the terms of the License Agreement attached to such Kit.
*
* (c) If this Sample Code is distributed independently, then the following
* terms apply:
*
* (d) This file may be freely copied and redistributed as long as:
* 1) Parts (a), (d), (e) and (f) continue to be included in the file,
* 2) If the file has been modified in any way, a notice of such
* modification is conspicuously indicated.
*
* (e) PostScript, Display PostScript, and Adobe are registered trademarks of
* Adobe Systems Incorporated.
*
* (f) THE INFORMATION BELOW IS FURNISHED AS IS, IS SUBJECT TO
* CHANGE WITHOUT NOTICE, AND SHOULD NOT BE CONSTRUED
* AS A COMMITMENT BY ADOBE SYSTEMS INCORPORATED.
* ADOBE SYSTEMS INCORPORATED ASSUMES NO RESPONSIBILITY
* OR LIABILITY FOR ANY ERRORS OR INACCURACIES, MAKES NO
* WARRANTY OF ANY KIND (EXPRESS, IMPLIED OR STATUTORY)
* WITH RESPECT TO THIS INFORMATION, AND EXPRESSLY
* DISCLAIMS ANY AND ALL WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR PARTICULAR PURPOSES AND NONINFRINGEMENT
* OF THIRD PARTY RIGHTS.
*/
/*
* DrawingView.h
*
* This view represents the page that the image is drawn onto. It is
* a subview of the DocView. The DocView is the document view of
* the ClipView. This view's real size grows with the scale but the
* bounds always stays the same.
*
* Version: 2.0
* Author: Ken Fromm
* History:
* 03-17-91 Added this comment and fixed the preview section.
*/
#import "ImportApp.h"
#import "epsfstruct.h"
#import <appkit/View.h>
#import <appkit/tiff.h>
#import <appkit/timer.h>
#define FONTSIZE 5
#define SCROLL_MARGIN 8
#define COMMENT_MAXLINE 100
/*
* A very system dependent define. It defines the amount of time
* that the mouse must be held down before it is considered a move.
* This hopefully prevents accidentally moving an object when
* just trying to select it or another.
*/
#define MOVE_INTERVAL 12
/* Flags that control the drawing operations of the graphic objects. */
#define NOFLAGS 0x0
#define REDRAWFLAG 0x1
#define MOVEFLAG 0x2
#define CLEARFLAG 0x4
#define REFRESHFLAG 0x8
@interface DrawingView:View
{
id imageId, /* id of the bitmap image for the preview */
bufferId, /* id of the offscreen buffer (content view of a window) */
graphicId, /* id of imported file waiting to be placed */
graphiclistId, /* list of all the graphics */
selectedlistId; /* list of selected graphics */
BOOL dirty, /* YES if different from saved version. */
pastevalid; /* YES if the pasteboard holds a valid type */
int timermask, /* the mask for modal loop timing */
pastecount; /* the count when the paste menu cell is validated */
UPath *hitPoint, /* user path description used for hit detection */
*upathBuffer; /* an application wide buffer for control points or whatever */
NXTrackingTimer *timer; /* the timer structure for modal loop drawing */
NXPoint rotatePoint; /* the point about which to rotate the selected graphics */
}
+newFrame:(const NXRect *) frm;
- free;
- showBuffer:sender;
- hideBuffer:sender;
- (float) controlPointSize;
- (float) hitSetting;
- buffer;
- image;
- setDirty:(BOOL) flag;
- (BOOL)isDirty;
- (BOOL)isEmpty;
- (BOOL)isSelected;
- moveTo:(NXCoord)x :(NXCoord)y;
- scale:(NXCoord)x :(NXCoord)y;
- writePSToStream:(NXStream *) stream;
/* The next seven methods are invoked through target-action first responder messages. */
- cut:sender;
- delete:sender;
- copy:sender;
- paste:sender;
- selectAll:sender;
- bringToFront:sender;
- sendToBack:sender;
- originalRatio:sender;
- scrollToRect:(const NXRect *)toRect;
- constrainPoint:(NXPoint *)aPt withOffset:(const NXSize*)llOffset :(const NXSize*)urOffset;
- constrainRect:(NXRect *)aRect;
- redrawObject:objectId :(int) pt_num;
- moveObject:(NXEvent *)event;
- eraseRotatePoint:(NXRect *) drawnRect;
- drawRotatePoint;
- rotateObjectStart:(NXEvent *)event;
- rotateObject:(NXEvent *)event;
- checkControl:(const NXPoint *) p :(int *) pt_num;
- checkObject:(const NXPoint *) p in:listId from:(int) start to:(int) end;
- deselectObject:objectId;
- selectObject:objectId;
- testObject:(NXEvent *)event;
- importFile:(const char *) file at:(NXPoint *) p;
- placeObjectAt:(NXPoint *) p;
- importObject:(NXEvent *)event;
/* Event handling methods. */
- mouseDown:(NXEvent *)event;
- flagsChanged:(NXEvent *) event;
- keyDown:(NXEvent *) event;
/* Drawing methods */
- drawObject:object forRect:(NXRect *)r withFlags:(int) flags;
- drawControl:object forRect:(NXRect *)r withFlags:(int) flags;
- drawSelf:(NXRect *)r :(int) count;
- display:(NXRect *)r :(int) count :(BOOL)flag;
- (BOOL) lockFocus;
- unlockFocus;
- (BOOL)acceptsFirstResponder;
/* Archiving methods. */
- write:(NXTypedStream *)stream;
- read:(NXTypedStream *)stream;
- awake;
/* Enables and disables the menu cells for first responder messages. */
- (BOOL)validateCommand:menuCell;
/* Printing/copying methods overridden from the view class. */
- (BOOL) knowsPagesFirst:(int *) firstPageNum last:(int *) lastPageNum;
- (BOOL) getRect:(NXRect *) theRect forPage:(int) page;
- addResources:(Resource *) docResources;
- beginResourceComments:(const NXRect *) bbox;
- beginPrologueBBox:(const NXRect *)boundingBox
creationDate:(const char *)dateCreated
createdBy:(const char *)anApplication
fonts:(const char *)fontNames
forWhom:(const char *)user
pages:(int)numPages
title:(const char *)aTitle;
- endHeaderComments;
- endPrologue;
- beginSetup;
- endSetup;
- beginTrailer;
- endTrailer;
@end